import storage from '@/utils/storage'

import {
	getToken,
	setToken,
	removeToken
} from '@/utils/auth'

const user = {
	state: {
		token: getToken(),
		userInfo: uni.getStorageSync('userInfo'),
	},

	mutations: {
		SET_TOKEN: (state, token) => {
			state.token = token
		},
		SET_USERINFO: (state, data) => {
			state.userInfo = data
			storage.set('userInfo', data)
		},
		update(state, [key, value]) {
			state[key] = value;
			uni.setStorageSync(key, value)
		},
	},
	actions: {
		// 登录
		Login({
			commit
		}, userInfo) {
			const username = userInfo.username.trim()
			const password = userInfo.password
			const code = userInfo.code
			const uuid = userInfo.uuid
			return new Promise((resolve, reject) => {
				login(username, password, code, uuid).then(res => {
					setToken(res.token)
					commit('SET_TOKEN', res.token)
					resolve()
				}).catch(error => {
					reject(error)
				})
			})
		},

	}
}
export default user